SRv6 TE Policy技术白皮书 您所在的位置:网站首页 srv6 be 尽力而为服务 SRv6 TE Policy技术白皮书

SRv6 TE Policy技术白皮书

2023-08-16 06:19| 来源: 网络整理| 查看: 265

SRv6 TE Policy技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。

目  录

1 概述··· 1

1.1 产生背景·· 1

1.2 技术优势·· 1

2 SRv6 TE Policy基本概念··· 1

2.1 SRv6 TE Policy定义·· 1

2.2 SRv6 TE Policy构成·· 1

2.3 SRv6 TE Policy组·· 2

3 SRv6 TE Policy基本工作原理··· 3

3.2 SRv6 TE Policy创建·· 3

3.2.1 静态部署SRv6 TE Policy· 3

3.2.2 通过ODN自动创建SRv6 TE Policy· 4

3.2.3 控制器下发SRv6 TE Policy· 4

3.3 Segment List的创建·· 8

3.3.1 手工方式建立Segment List 8

3.3.2 采用动态计算的路径建立Segment List 8

3.4 SRv6 TE Policy引流·· 11

3.4.1 基于BSID引流·· 12

3.4.2 基于Color引流·· 12

3.4.3 基于DSCP引流·· 13

3.4.4 基于802.1p引流·· 14

3.4.5 基于CBTS引流·· 16

3.4.6 基于静态路由引流·· 18

3.4.7 基于策略路由引流·· 18

3.4.8 基于QoS策略引流·· 18

3.4.9 基于Flowspec引流·· 18

3.4.10 自引流功能·· 19

3.5 SRv6 TE Policy选路·· 19

3.6 SRv6 TE Policy数据封装和转发·· 20

3.6.1 SRv6 TE Policy数据转发·· 20

3.6.2 SRv6 TE Policy的封装方式·· 21

4 SRv6 TE Policy工作原理扩展··· 22

4.1 SRv6 TE Policy有效性判断·· 22

4.2 SRv6 TE Policy高可靠性·· 22

4.2.1 SRv6 TE Policy与BFD联动·· 22

4.2.2 SRv6 TE Policy与SBFD联动·· 23

4.2.3 SRv6 TE Policy热备份功能·· 23

5 SRv6 TE Policy的应用场景··· 24

6 参考文献··· 25

 

1  概述 1.1  产生背景

SRv6 TE Policy是一种基于SRv6的流量工程,为用户提供了流量转发过程中的路径选择、路径切换和备份保护等功能。类似于MPLS TE技术,SRv6 TE Policy也可以看做是SRv6基础上发展的一种新的TE隧道技术。

SRv6 TE Policy提供了灵活的转发路径选择方法,可以满足用户不同的转发需求。当Segment Routing网络的源节点和目的节点之间存在多条路径时,合理利用SRv6 TE Policy选择转发路径,不仅可以方便管理员对网络进行管理和规划,还可以有效地减轻网络设备的转发压力。

1.2  技术优势

SRv6 TE Policy技术具有如下优势:

·     高可靠性

支持通过SBFD检测SRv6 TE Policy的连通性,快速定位故障点。同时支持热备份,有效减少网络故障时的丢包数量。

·     引流多样化

SRv6 TE Policy支持基于BSID、基于Color和基于DSCP等多种引流方式。可以根据不同转发需求灵活选择引流方式。

·     灵活部署

SRv6 TE Policy支持部署在多种网络环境中,如IP L3VPN over SRv6、EVPN VPLS over SRv6等。

2  SRv6 TE Policy基本概念 2.1  SRv6 TE Policy定义

SRv6 TE Policy通过三元组{Headend、Color、Endpoint}来标识:

·     Headend:源节点。源节点将报文引入SRv6 TE Policy,并由SRv6 TE Policy引导报文在选定的路径上转发。

·     Color:转发路径的Color属性,用于在相同的源和目的节点之间区分多个SRv6 TE Policy。通过Color属性可以代表不同业务质量要求,例如低延时、高带宽。

·     Endpoint:SRv6 TE Policy目的节点的IPv6地址。

2.2  SRv6 TE Policy构成

如图1所示,一个SRv6 TE Policy由BSID和多条具有不同优先级的Candidate Paths(候选路径)组成,每个候选路径包括由Segment List(SID列表)标识的一条或多条转发路径。

·     BSID

Binding SID,与SRv6 TE Policy关联。如果报文的目的地址为BSID,则将流量引导到该BSID所属的SRv6 TE Policy。

·     候选路径(Candidate Path)

一个SRv6 TE Policy包含一条或多条候选路径,不同候选路径具有不同优先级。通过SRv6 TE Policy转发流量时,设备根据候选路径的优先级从多条候选路径中选择优先级最高的作为流量转发路径。

·     SID列表

SID列表包含报文转发路径信息,由转发路径上各个节点的SID(IPv6地址)组成。

候选路径由一个SID列表或者多个带权重的SID列表组成。SRv6 TE Policy选择某条候选路径后,会根据SID列表的权重,在候选路径的多个SID列表间进行负载分担。

图1 SRv6 TE Policy构成

 

2.3  SRv6 TE Policy组

SRv6 TE Policy组是一组具有相同Endpoint的SRv6 TE Policy的集合。通过SRv6 TE Policy组转发的流量可以根据报文的DSCP或Dot1p值等标识信息映射到SRv6 TE Policy组中不同Color值的SRv6 TE Policy中转发,根据业务的不同标识信息,实现差异化转发控制。

SRv6 TE Policy组由Group ID标识,同时也存在Color和Endpoint属性:

·     Color:SRv6 TE Policy组携带的扩展团体属性,携带相同Color属性的BGP路由可以迭代到该SRv6 TE Policy组。

·     Endpoint:SRv6 TE Policy组目的节点的IPv6地址。如果SRv6 TE Policy和SRv6 TE Policy组的Endpoint相同,则该SRv6 TE Policy属于这个SRv6 TE Policy组。

SRv6 TE Policy组可以通过如下方式创建:

·     通过命令行手工创建

采用该方式时,需要手工配置SRv6 TE Policy组的目的节点地址。

·     通过ODN功能自动创建

创建SRv6 TE Policy组的ODN(On-Demand Next-Hop,按需下一跳)模板后,当设备收到BGP路由时,如果该BGP路由携带的Color扩展团体属性与ODN模板的Color值相同,则以该BGP路由的下一跳地址作为SRv6 TE Policy组的目的节点地址,以ODN模板的Color值作为SRv6 TE Policy组的Color属性,生成一个SRv6 TE Policy组。设备将在未分配的组ID中,选择最小的组ID分配给该SRv6 TE Policy组。

3  SRv6 TE Policy基本工作原理

作为一种TE隧道技术,实现流量通过SRv6 TE Policy转发的基本步骤为:

(1)     SRv6 TE Policy创建:创建一个SRv6 TE Policy,生成SRv6 TE Policy中用于转发流量的路径,即候选路径。

(2)     SRv6 TE Policy引流:SRv6 TE Policy隧道创建之后,将流量引入到隧道中转发。

(3)     SRv6 TE Policy选路:流量引入到SRv6 TE Policy隧道中之后,选择SRv6 TE Policy中最优的候选路径转发流量。

(4)     SRv6 TE Policy数据封装和转发:为报文封装SRv6 TE Policy的SID list,实现流量从源节点到尾节点沿着SRv6 TE Policy隧道路径转发。

3.2  SRv6 TE Policy创建

SRv6 TE Policy可以在源节点手工静态部署,也可以通过配置的ODN(On-Demand Next-Hop,按需下一跳)模板自动创建SRv6 TE Policy,还可以通过控制器动态生成然后下发到源节点。

3.2.1  静态部署SRv6 TE Policy

如图2所示,用户可以在源节点A手工静态配置SRv6 TE Policy。部署SRv6 TE Policy时,用户需要指定SRv6 TE Policy的Color属性、Endpoint地址、BSID、候选路径和SID列表。

图2 静态部署SRv6 TE Policy示意图

 

3.2.2  通过ODN自动创建SRv6 TE Policy

如图3所示,在A节点创建ODN模板后,如果设备接收到的BGP路由携带的Color扩展团体属性与ODN模板的Color值相同,则以该BGP路由的下一跳地址作为SRv6 TE Policy的目的节点地址,以ODN模板的Color值作为SRv6 TE Policy的Color属性,自动创建一个SRv6 TE Policy。

根据ODN模板创建SRv6 TE Policy时,可以利用IPv6地址前缀列表对BGP路由进行过滤。通过IPv6地址前缀列表过滤的BGP路由可以触发生成SRv6 TE Policy,被IPv6地址前缀列表拒绝的BGP路由不能触发建立SRv6 TE Policy。

该SRv6 TE Policy会在指定Locator段内自动申请一个BSID。ODN自动创建SRv6 TE Policy后,会生成两条候选路径:

·     Preference为200的候选路径,该候选路径下的SID列表需要通过亲和属性或Flex-Algo算法动态计算。

·     Preference为100的候选路径,该候选路径下的SID列表需要由PCE计算。关于PCE计算的详细介绍,请参见“3. 采用PCE计算的路径建立Segment List”。

由ODN功能自动创建的SRv6 TE Policy下也可以手工创建候选路径。

图3 通过ODN自动创建SRv6 TE Policy

 

3.2.3  控制器下发SRv6 TE Policy

如图3所示,控制器下发SRv6 TE Policy过程为:

(1)     控制器通过BGP-LS收集网络拓扑和SID信息。

(2)     控制器与源节点之间建立BGP IPv6 SR Policy地址族的BGP会话。

(3)     控制器计算SRv6 TE Policy候选路径后,通过BGP会话将SRv6 TE Policy的Color属性、Endpoint地址、BSID、候选路径和SID列表下发给源节点。源节点设备生成SRv6 TE Policy。

图4 控制器下发SRv6 TE Policy示意图

 

为了支持SRv6 TE Policy,MP-BGP定义了新的子地址族——BGP SRv6 TE Policy地址族,并新增了SRv6 TE Policy NLRI(Network Layer Reachability Information,网络层可达性信息),即SRv6 TE Policy路由(也称为BGP SRv6 TE Policy路由)。SRv6 TE Policy路由中包含SRv6 TE Policy的相关配置,包括BSID、Color、Endpoint、候选路径优先级、SID列表和SID列表的权重等。

在设备间建立BGP SRv6 TE Policy对等体后,设备可以将本地配置的SRv6 TE Policy通过SRv6 TE Policy路由发布到对端。对端设备根据接收到的SRv6 TE Policy路由生成对应的SRv6 TE Policy。

1. SRv6 TE Policy NLRI

SRv6 TE Policy NLRI用于描述SRv6 SID的网络层可达信息。

SRv6 TE Policy NLRI的报文格式如图4所示。

图5 SRv6 Policy NLRI

 

SRv6 TE Policy NLRI包含字段如表1所示。

表1 SRv6 TE Policy NLRI的字段描述表

字段名称

长度

含义

NLRI Length

8比特

SRv6 Policy NLRI长度

Distinguisher

32比特

标识符,唯一标识一个SRv6 TE Policy

Policy Color

32比特

SRv6 TE Policy的Color属性

Endpoint

128比特

SRv6 TE Policy的目的节点地址

 

2. Tunnel Encapsulation Attribute

携带SRv6 TE Policy NLRI的BGP Update消息中,需要同时携带Tunnel Encapsulaton Attribute。如表2所示,在Tunnel Encapsulaton Attribute中通过定义以下子TLV来记录SRv6 TE Policy的相关信息。

表2 Tunnel Encapsulaton Attribute中子TLV描述表

TLV名称

作用

携带位置

Preference Sub-TLV

通告候选路径的优先级

Tunnel Encapsulation Attribute

SRv6 Binding SID Sub-TLV

通告候选路径的BSID

Tunnel Encapsulation Attribute

Segment List Sub-TLV

通告Segment List

Tunnel Encapsulation Attribute

Weight Sub-TLV

通告Segment List的权重

Segment List Sub-TLV

Policy Candidate Path Name Sub-TLV

通告候选路径的名称

Tunnel Encapsulation Attribute

 

3. Preference Sub-TLV

Preference Sub-TLV用于承载候选路径的优先级。

Preference Sub-TLV的报文格式如图5所示。

图6 Preference Sub-TLV

 

Preference Sub-TLV包含字段如表3所示。

表3 Preference Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为12

Length

8比特

长度

Flags

8比特

标志位,目前无定义

Reserved

8比特

预留值,取值为0

Preference

32比特

SRv6 TE Policy的候选路径的Preference值

 

4. Binding SID Sub-TLV

Binding SID Sub-TLV用于标识SRv6 TE Policy的BSID。

Binding SID Sub-TLV的报文格式如图6所示。

图7 Binding SID Sub-TLV

 

Binding SID Sub-TLV包含字段如表4所示。

表4 Binding SID Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为13

Length

8比特

长度

Flags

8比特

标志位,目前无定义

Reserved

8比特

预留值,取值为0

Binding SID

32比特

BSID值

 

5. Segment List Sub-TLV

Segment List Sub-TLV用于承载候选路径的的SID列表。

Segment List Sub-TLV的报文格式如图7所示。

图8 Segment List Sub-TLV

 

Segment List Sub-TLV包含字段如表5所示。

表5 Segment List Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为128

Length

16比特

长度

Reserved

8比特

预留值,取值为0

Sub-TLVS

32比特

·     一个可选的Weight sub-TLV

·     0到多个Segment sub-TLVs

 

6. Weight Sub-TLV

Weight Sub-TLV用于承载SID列表的权重。

Weight Sub-TLV的报文格式如图8所示。

图9 Weight Sub-TLV

 

Weight Sub-TLV包含字段如表6所示。

表6 Weight Sub-TLV的字段描述表

字段名称

长度

含义

Type

8比特

类型,取值为9

Length

8比特

长度

Flags

8比特

标志位

Reserved

8比特

预留值,取值为0

Weight

32比特

SID列表的权重值

 

3.3  Segment List的创建

SID列表代表了转发路径,是SRv6 TE Policy的关键组成部分,SID列表支持手工创建和动态计算两种方式。

3.3.1  手工方式建立Segment List

通过命令行手工创建SID列表,并在SID列表中指定报文需要经过节点。

3.3.2  采用动态计算的路径建立Segment List

手工创建的SRv6 TE Policy和由ODN功能自动创建的SRv6 TE Policy,均支持在SRv6 TE Policy的源节点采用动态计算的路径建立SID列表。

SRv6 TE Policy支持采用如下方式动态计算路径:

·     根据亲和属性动态计算路径

·     根据Flex-Algo算法动态计算路径

·     使用PCE动态计算路径

1. 根据亲和属性动态计算的路径建立Segment List

SRv6 TE Policy根据亲和属性动态计算路径的过程为:

(1)     根据亲和属性规则决定SRv6 TE Policy可以使用哪些链路。

亲和属性规则通过引用亲和属性名称,来关联指定的亲和属性比特位,以实现SRv6 TE Policy根据亲和属性规则选择具有指定亲和属性比特位的链路。

¡     链路属性:32位的二进制数,每一位二进制数代表一个属性,属性值为0或1。

¡     亲和属性比特位:取值为0~31。当亲和属性比特位取值为N时,表示其与链路属性从右向左的第N+1位进行比较。仅当链路属性的第N+1位为1时,该链路才具有该亲和属性。

例如,亲和属性名称为blue,对应亲和属性比特位为1;亲和属性名称为red,对应亲和属性比特位为5。在不同亲和属性规则下,选择链路的方式为:

¡     亲和属性规则为include-any,表示只有链路具有该规则中指定的任意一个亲和属性时,SRv6 TE Policy才可以使用该链路。include-any { bule, red }表示,如果链路的32位链路属性中第二位(blue对应的亲和属性比特位)或第六位(red对应的亲和属性比特位)为1,则该链路可用。

¡     亲和属性规则为include-all,表示只有链路具有该规则中所有亲和属性时,SRv6 TE Policy才可以使用该链路。include-all { bule, red }表示,如果链路的32位链路属性中第二位(blue对应的亲和属性比特位)和第六位(red对应的亲和属性比特位)均为1,则该链路可用。

¡     亲和属性规则为exclude-any时,表示只要链路具有该规则中指定的任意一个亲和属性时,SRv6 TE Policy不可以使用该链路。exclude-any { bule, red }表示,如果链路的32位链路属性中第二位(blue对应的亲和属性比特位)或第六位(red对应的亲和属性比特位)为1,则该链路不可用。

(2)     根据度量类型计算路径。

SRv6 TE Policy支持的度量类型及计算方式为:

¡     以跳数作为度量值,选择跳数最少的链路。

¡     以IGP链路开销值作为度量值,选择IGP链路开销值最低的链路。

¡     以接口平均时延作为度量值,选择接口平均时延最低的链路。

¡     以MPLS TE度量值作为度量值,选择TE度量值最低的链路。

路径计算完成后,设备将该路径上所有链路或节点对应的SID由近到远排列,组成SRv6 TE Policy的SID列表。选择SID时,优先选择End SID。如果设备上没有End SID,则选择End.X SID。

如图9所示,链路中间的数字表示cost值。SRv6 TE Policy的亲和属性规则为include-any,SRv6 TE Policy根据亲和属性动态计算路径的过程为:

(1)     根据亲和属性规则,选择亲和属性为“红色”的链路。

(2)     根据不同度量类型选择不同链路:

¡     以跳数作为度量值时,选择跳数最少的链路,使用A-B-C-D-E-F作为转发路径。

¡     以IGP链路开销值作为度量值时,选择IGP开销最小的链路,使用A-B-C-I-H-D-E-F作为转发路径。

图10 SRv6 TE Policy根据亲和属性动态计算路径示意图

 

2. 根据Flex-Algo算法动态计算的路径建立Segment List

SRv6 TE Policy使用指定的Flex-Algo算法计算转发路径。通过Flex-Algo算法得到转发路径后,设备会将该路径上所有链路或节点对应的SID由近到远排列,组成SRv6 TE Policy的SID列表。选择SID时,优先选择End SID。如果设备上没有End SID,则选择End.X SID。Flex-Algo算法的详细介绍,请参见《Flex-Algo技术白皮书》。

3. 采用PCE计算的路径建立Segment List

在SRv6 TE Policy网络中,SRv6节点可以作为PCC(Path Computation Client,路径计算客户端),根据PCE(Path Computation Element,路径计算单元)计算的路径建立SID列表。

·     PCE:网络中的一个实体,用于为网络上的设备提供路径计算服务。可进行区域内的路径计算,也可在复杂的网络环境中计算完整的SID列表。PCE分为以下两种类型:

¡     Stateless PCE(Stateless Path Computation Element,无状态PCE):该类型PCE仅提供路径计算服务。

¡     Stateful PCE(Stateful Path Computation Element,有状态PCE):该类型PCE掌握了网络内所有PCC维护的路径信息,可以重新计算和优化域内的转发路径,以达到最大程度分配和使用网络资源的目的。Stateful PCE包括Active-Stateful PCE(Active-Stateful Path Computation Element,主动有状态PCE)和Passive-Stateful PCE(Passive-Stateful Path Computation Element,被动有状态PCE)两种类型。被动有状态PCE仅维护PCC的SID列表信息,不能实时根据网络状况优化路径,并通知PCC更新路径;主动有状态PCE可以实时根据网络状况优化路径,并通知PCC更新路径。

·     PCC:请求PCE执行路径计算,并根据PCE返回的路径信息建立转发路径。PCC必须与PCE类型一致。因此,PCC分为以下两种类型:

¡     Stateless PCC(Stateless Path Computation Client,无状态PCC):该类型PCC仅向PCE发送路径计算请求。

¡     Stateful PCC(Stateful Path Computation Client,有状态PCC):该类型PCC的SID列表信息委托给PCE,由Stateful PCE维护PCC的路径信息。Stateful PCC包括Active-Stateful PCC(Active-Stateful Path Computation Client,主动有状态PCC)和Passive-Stateful PCC(Passive-Stateful Path Computation Client,被动有状态PCC)两种类型。被动有状态PCC的SID列表信息仅上报PCE,但不由PCE计算,不能实时更新路径;主动有状态PCC的SID列表信息上报PCE,并由PCE计算,可以实时更新路径。

·     PCEP(Path Computation Element Protocol,路径计算单元通信协议):运行于PCC与PCE之间的通信协议,用于建立PCEP会话、交互PCEP消息。该协议基于TCP。

图11 路径计算过程示意图

 

如图10所示,PCE路径计算过程如下:

(1)     PCC向PCE发起路径计算请求。

(2)     PCE收到该请求后,为PCC计算路径。

(3)     PCE完成路径计算后,对PCC的路径请求进行应答,要求PCC创建路径信息。

(4)     PCC根据PCE计算的路径信息在SRv6 TE Policy的候选路径下创建SID列表信息。

3.4  SRv6 TE Policy引流

可以通过多种方式将流量引入到SRv6 TE Policy转发,其中包括:

·     基于BSID引流

·     基于Color引流

·     基于DSCP引流

·     基于802.1p引流

·     基于CBTS引流

·     基于静态路由引流

·     基于策略路由引流

·     基于QoS策略引流

·     基于Flowspec引流

·     自引流功能

3.4.1  基于BSID引流

如果接收到的报文的目的IPv6地址为某个SRv6 TE Policy的BSID,则通过该SRv6 TE Policy转发该报文。基于BSID引流通常用于SID缝接场景,通过在某个SRv6 TE Policy的SID列表中加入另一个SRv6 TE Policy的BSID,可以在流量转发过程中减少报文SRH头的长度,实现不同SRv6 TE Policy之间的缝接。

3.4.2  基于Color引流 1. Color引流机制

Color引流是直接基于路由的扩展团体属性Color和目的地址,将流量引入到SRv6 TE Policy转发。如果设备上存在Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址完全相同的SRv6 TE Policy,则将该BGP路由迭代到SRv6 TE Policy。当设备收到匹配该BGP路由的报文时,会通过SRv6 TE Policy转发该报文。

2. Color引流的工作过程示例

如图11所示,Color引流过程为:

(1)     通过控制器向源节点A下发SRv6 TE Policy 1,其Color为100,EndPoint是设备H的地址5::5。

(2)     设备H将BGP VPNv4路由2.2.2.2/32发送给源节点设备A。该路由的Color扩展团体属性值为100,下一跳为设备H的地址5::5。

(3)     当源节点A收到BGP VPNv4路由2.2.2.2/32后,根据Color扩展团体属性100和下一跳地址5::5,将该路由迭代到SRv6 TE Policy 1。匹配该BGP路由的报文会通过SRv6 TE Policy 1转发。

图12 Color引流示意图

 

3.4.3  基于DSCP引流 1. DSCP引流机制

根据报文的DSCP值将报文引流到SRv6 TE Policy时,需要部署SRv6 TE Policy组。SRv6 TE Policy组由多个Color属性不同,但Endpoint地址相同的SRv6 TE Policy组成。

基于DSCP引流的工作机制为:

(1)     将Color属性不同的多个SRv6 TE Policy加入到一个SRv6 TE Policy组,并指定DSCP值与Color属性的映射关系。

(2)     采用以下任意一种方式,均可实现引流到SRv6 TE Policy组:

¡     配置隧道策略,在隧道策略中将指定的目的地址与SRv6 TE Policy组绑定,从而实现去往该目的地址的流量引入到SRv6 TE Policy组转发。

¡     配置隧道策略,在隧道策略中配置SRv6 TE Policy组为优先隧道,当路由的下一跳地址为SRv6 TE Policy组的目的节点地址时,流量优先引入到SRv6 TE Policy组中转发。

¡     查找到Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址匹配的SRv6 TE Policy组后,将该BGP路由迭代到SRv6 TE Policy组。

(3)     根据报文的DSCP值查找与其关联的Color属性,再通过Color属性匹配到SRv6 TE Policy组中的某个SRv6 TE Policy。这样,就形成了DSCP->Color->SRv6 TE Policy的映射关系,实现携带指定DSCP的报文通过指定SRv6 TE Policy转发。

2. DSCP引流工作过程示例

如图12所示,DSCP引流过程为:

(1)     通过控制器向源节点A下发SRv6 TE Policy,SRv6 TE Policy 1的Color是100,EndPoint是设备H的地址5::5;SRv6 TE Policy 2的Color是200,EndPoint也是设备H的地址5::5。

(2)     设备H将BGP VPNv4路由2.2.2.2/32发送给源节点设备A,下一跳地址为5::5。

(3)     在源节点设备A上创建SRv6 TE Policy组111,其EndPoint为设备H的地址5::5。在SRv6 TE Policy组内创建Color和DSCP映射关系,Color 100映射为DSCP 10,Color 200映射为DSCP 20。之后在源节点A上配置隧道策略,将SRv6 TE Policy组与目的地址2.2.2.2绑定。

(4)     源节点A根据报文的目的地址,查找到匹配的隧道绑定策略,进而关联到SRv6 TE Policy组,然后根据报文的DSCP值查找映射的Color,再根据Color匹配到SRv6 TE Policy组里具体的某一个SRv6 TE Policy,在该SRv6 TE Policy中选择最优的候选路径,并按照候选路径中SID List将DSCP值为10的报文按B -> C -> D -> H路径转发,从而实现报文的DSCP引流。

图13 DSCP引流示意图

 

3.4.4  基于802.1p引流 1. 802.1p引流机制

根据报文的802.1p值将报文引流到SRv6 TE Policy时,需要部署SRv6 TE Policy组。SRv6 TE Policy组由多个Color属性不同,但Endpoint地址相同的SRv6 TE Policy组成。

基于802.1p引流的工作机制为:

(1)     将Color属性不同的多个SRv6 TE Policy加入到一个SRv6 TE Policy组,并指定802.1p值与Color属性的映射关系。

(2)     采用以下任意一种方式,均可实现引流到引流到SRv6 TE Policy组:

¡     配置隧道策略,在隧道策略中将指定的目的地址与SRv6 TE Policy组绑定,从而实现去往该目的地址的流量引入到SRv6 TE Policy组转发。

¡     配置隧道策略,在隧道策略中配置SRv6 TE Policy组为优先隧道,当路由的下一跳地址为SRv6 TE Policy组的目的节点地址时,流量优先引入到SRv6 TE Policy组中转发。

¡     查找到Color和Endpoint地址与BGP路由的Color扩展团体属性和下一跳地址匹配的SRv6 TE Policy组后,将该BGP路由迭代到SRv6 TE Policy组。

(3)     根据报文的802.1p值查找与其关联的Color属性,再通过Color属性匹配到SRv6 TE Policy组中的某个SRv6 TE Policy。这样,就形成了802.1p->Color->SRv6 TE Policy的映射关系,实现携带指定802.1p的报文通过指定SRv6 TE Policy转发。

2. 802.1p引流工作过程示例

如图13所示,802.1p引流过程为:

(1)     通过控制器向源节点A下发SRv6 TE Policy,SRv6 TE Policy 1的Color是100,EndPoint是设备H的地址5::5;SRv6 TE Policy 2的Color是200,EndPoint也是设备H的地址5::5。

(2)     设备H将BGP VPNv4路由2.2.2.2/32发送给源节点设备A,下一跳地址为5::5。

(3)     在源节点设备A上创建SRv6 TE Policy组111,其EndPoint为设备H的地址5::5。在SRv6 TE Policy组内创建Color和Dot1p映射关系,Color 100映射为Dot1p 10,Color 200映射为Dot1p 20。之后在源节点A上配置隧道策略,将SRv6 TE Policy组与目的地址2.2.2.2绑定。

(4)     源节点A根据报文的目的地址,查找到匹配的隧道绑定策略,进而关联到SRv6 TE Policy组,然后根据报文的Dot1p值查找映射的Color,再根据Color匹配到SRv6 TE Policy组里具体的某一个SRv6 TE Policy,在该SRv6 TE Policy中选择最优的候选路径,并按照候选路径中SID List将Dot1p值为10的报文按B -> C -> D -> H路径转发,从而实现报文的Dot1p引流。

图14 802.1p引流示意图

 

3.4.5  基于CBTS引流 1. 基于CBTS引流机制

SRv6 TE Policy CBTS(Class-based Tunnel Selection,基于服务类型的隧道选择)是一种SRv6 TE Policy隧道的选择方式。有别于传统的隧道选择方式,CBTS可以基于流量的转发类选择对应的SRv6 TE Policy隧道进行转发,以便为不同的业务提供不同的转发服务。

SRv6 TE Policy CBTS工作原理为:

·     指定SRv6 TE Policy的转发类(Service-class属性)。

·     通过流分类匹配需要经过SRv6 TE Policy转发的流量,将不同业务的流量映射成不同的转发类,映射到指定转发类的业务流量可以通过具有对应转发类的SRv6 TE Policy隧道转发。

流量匹配了多条SRv6 TE Policy隧道时,SRv6 TE Policy CBTS按照如下规则优选转发该流量的SRv6 TE Policy隧道::

(1)     设备会优先选择与流量的转发类值相同的SRv6 TE Policy转发该流量。

(2)     存在多条与流量的转发类值相同的SRv6 TE Policy时,如果只有一条流且为逐流负载分担,则随机选择一个SRv6 TE Policy转发流量;如果只有一条流但是为逐包负载分担或有多条流,则流量在相同转发类的SRv6 TE Policy间进行负载分担。

(3)     如果不存在与流量的转发类值相同的SRv6 TE Policy,则选择隧道转发优先级最低的SRv6 TE Policy转发流量。SRv6 TE Policy转发类的取值越小,隧道转发的优先级越低,没有配置转发类的隧道优先级最低。

如图14所示,隧道的选择原则为:

·     从Device A到Device B转发类值为3的流量通过SRv6 TE Policy B转发。

·     从Device A到Device B转发类值为6的流量通过SRv6 TE Policy C转发。

·     从Device A到Device B转发类值为4的流量通过SRv6 TE Policy A转发。

·     从Device A到Device B未配置隧道转发类的流量通过SRv6 TE Policy A转发。

图15 SRv6 TE Policy CBTS示意图

 

2. CBTS引流工作过程示例

如图15所示,基于CBTS引流的工作过程为:

(1)     通过控制器向源节点A下发SRv6 TE Policy,SRv6 TE Policy 1的Color是100,Service-class为1,EndPoint是设备H的地址5::5;SRv6 TE Policy 2的Color是200,Service-class为2,EndPoint也是设备H的地址5::5。

(2)     设备H将BGP VPNv4路由2.2.2.2/32发送给源节点设备A,下一跳地址为5::5。

(3)     在源节点A根据报文的五元组等特征,使用QoS策略标记报文的的Service-class值。

(4)     源节点A收到Service-class为1的报文时,通过SRv6 TE Policy 1转发;源节点A收到Service-class为2的报文时,通过SRv6 TE Policy 2转发。

图16 CBTS引流示意图

 

3.4.6  基于静态路由引流

在设备上创建一条迭代到SRv6 TE Policy的静态路由后,通过静态路由将流量引流到SRv6 TE Policy,如果设备收到匹配该静态路由的报文,则通过指定SRv6 TE Policy转发该报文。

3.4.7  基于策略路由引流

在设备上创建策略路由,并在该策略路由中通过apply子句指定SRv6 TE Policy后,通过策略路由将流量引流到SRv6 TE Policy,如果设备收到匹配该策略路由定义的匹配规则的报文,则通过指定SRv6 TE Policy转发该报文。

3.4.8  基于QoS策略引流

在设备上创建绑定了重定向SRv6 TE Policy流行为的QoS策略,再将QoS策略应用到接口或全局,设备将符合该QoS策略中的匹配条件的报文流量重定向到SRv6 TE Policy。

3.4.9  基于Flowspec引流

在Flowspec控制器上创建Flowspec路由,该Flowspec路由中定义了报文匹配规则和重定向到SRv6 TE Policy的流量转发动作。Flowspec控制器通过扩展的BGP协议将Flowspec路由发布给Flowspec转发器,即SRv6 TE Policy源节点。SRv6 TE Policy源节点根据该Flowspec路由中定义的重定向到SRv6 TE Policy的流量转发动作将符合报文匹配规则的流量通过指定SRv6 TE Policy转发。

3.4.10  自引流功能

自引流是指将SRv6 TE Policy隧道或SRv6 TE Policy组发布到IGP(OSPFv3或IS-IS)路由中,让SRv6 TE Policy隧道或SRv6 TE Policy组参与IGP路由的计算,使得流量可以通过SRv6 TE Policy隧道或SRv6 TE Policy组转发。

自动引流目前仅支持IGP Shortcut方式,也称为自动路由宣告(AutoRoute Announce),该功能将SRv6 TE Policy或SRv6 TE Policy组当作一条直接连接隧道Ingress节点(头节点)和Egress节点(尾节点)的链路,在隧道的Ingress节点上进行IGP路由计算时考虑该SRv6 TE Policy或SRv6 TE Policy组。

IGP Shortcut功能不会通过IGP路由协议将SRv6 TE Policy隧道或SRv6 TE Policy组作为一条链路发布给邻居。因此,其他设备在路由计算时不会考虑SRv6 TE Policy隧道或SRv6 TE Policy组。

说明

通过自引流方式将流量引入到SRv6 TE Policy组后,流量将在SRv6 TE Policy组内基于DSCP或Dot1p引流方式查找匹配的SRv6 TE Policy,通过该SRv6 TE Policy转发流量。

 

例如,在图16中,Device D到Device C之间存在一条SRv6 TE Policy隧道,IGP Shortcut可以使源节点节点Device D在计算IGP路由时利用这条隧道,从而将进入Device D的报文引到Device D与Device C之间的SRv6 TE Policy隧道上。

图17 IGP Shortcut与转发邻接示意图

 

3.5  SRv6 TE Policy选路

数据报文引流到SRv6 TE Policy后,在SRv6 TE Policy中选择路径的过程为:

(1)     在SRv6 TE Policy中选择优先级取值最大的有效候选路径转发流量。

(2)     在优先级取值最大的有效候选路径的各个SID列表间进行WECMP(Weighted ECMP,权重负载分担),即基于权重对通过SRv6 TE Policy转发的流量进行负载分担。假设候选路径中包含n个有效SID列表,第x个SID列表的权重为Wight x,则第x个SID列表转发流量的比例为Weight x/(Weight 1+Weight 2+…+Weight n)。

如图17所示,根据BSID选择有效的SRv6 TE Policy转发流量,再选取优先级取值最大的有效候选路径转发流量。该候选路径中有两个有效的SID列表:SID List 1和SID List 2,其权重分别为20和80。通过该SRv6 TE Policy转发流量时,SID List 1和SID List 2转发的流量占比分别为1/5和4/5。

图18 SRv6 TE Policy转发流量时选路过程示意图

 

3.6  SRv6 TE Policy数据封装和转发 3.6.1  SRv6 TE Policy数据转发

SRv6 TE Policy数据转发是将SRv6 TE Policy的SID列表封装到报文的SRH中,报文根据SRH沿着SID列表标识的路径转发报文。

如图18所示,以基于BSID引流为例,SRv6 TE Policy的报文转发过程为:

(1)     Device A收到目的地址为100::1的IPv6报文后,查找IPv6路由表转发,判断该报文的目的地址为指定SRv6 TE Policy的BSID,需要通过该SRv6 TE Policy转发。Device A根据SRv6 TE Policy为报文封装SRH头,SRH头携带的SID列表为{10::2, 20::2, 30::2}。其中,10::2为Device A上到Device B链路的End.X SID,20::2为Device B上到Device C链路的End.X SID;30::2为Device D的End SID。

(2)     Device A查IPv6路由表,发现报文的目的地址为本地到Device B链路的End.X SID,将封装后的报文发送给下一跳Device B,并将SL减1,替换报文的目的地址为SID列表中的下一个SID。

(3)     Device B收到报文后,查IPv6路由表发现报文的目的地址为本地到Device C链路的End.X SID,类似上一步操作,将报文发送给Device C。

(4)     Device C收到报文后,发现报文目的地址不是本地的SRv6 SID,查找IPv6路由表将报文发送给Device D。

(5)     Device D收到报文后,发现报文的目的地址为本地的End SID,同时检查SRH头中的SL值,发现SL=0。Device D对报文进行解封装,根据原始报文的目的地址进行报文转发。

图19 SRv6 TE Policy转发过程示意图

 

3.6.2  SRv6 TE Policy的封装方式

通过BSID引流时,如果报文的目的IPv6地址和BSID相同,则报文通过对应的SRv6 TE Policy转发。此时,需要为报文封装SRv6 TE Policy的SID列表,封装模式包括:

·     Encaps方式:普通封装模式。在原始报文的基础上封装IPv6头和SRH时,SRv6 TE Policy的SID列表中的所有SID均封装在SRH中。

¡     IPv6头的目的IPv6地址为SRv6 TE Policy的SID列表中的第一个IPv6地址,源IPv6地址为用户手工指定的IPv6地址。

¡     SRH包含SRv6 TE Policy的SID列表中所有SID信息。

·     Encaps.Red方式:精简封装模式。在原始报文的基础上封装IPv6头和SRH时,SRv6 TE Policy的SID列表中的第一个SID不封装在SRH中,其他SID封装到SRH中,以便减少SRH的长度。

¡     IPv6头的目的IPv6地址为SRv6 TE Policy的SID列表中的第一个SID,源IPv6地址为用户手工指定的IPv6地址。

¡     SRH包含SRv6 TE Policy的SID列表中除第一个SID外所有SID信息。

通过BSID方式引流到SRv6 TE Policy时,缺省情况下,如果头节点的SRv6 SID是End.X SID,则不会将该SID封装到SRH中。为了通过报文中的SRH获取完整的路径信息,即获取到SRv6转发路径上所有SRv6节点的信息,在封装SRH时可以添加本地的End.X SID。

4  SRv6 TE Policy工作原理扩展 4.1  SRv6 TE Policy有效性判断

通过无效的SRv6 TE Policy转发流量,会导致流量转发失败。因此,只有SRv6 TE Policy有效时,才能通过该SRv6 TE Policy转发流量。

SRv6 TE Policy有效性判断规则为:只要SRv6 TE Policy中存在一个有效的SID列表,则该SRv6 TE Policy有效;否则,SRv6 TE Policy无效。

存在以下任意一种情况时,SID列表无效:

·     SID列表为空;

·     SID列表的权重为0;

·     SR节点无法与SID列表中的第一跳IPv6地址互通;

·     检测SID列表的BFD会话或SBFD会话DOWN。

4.2  SRv6 TE Policy高可靠性 4.2.1  SRv6 TE Policy与BFD联动

echo报文方式的BFD对SRv6 TE Policy进行检测时,如果候选路径中存在多个SID列表,则SRv6 TE Policy会建立多个BFD会话分别用来检测每一个SID列表对应的转发路径。

图20 echo报文方式的BFD会话检测SRv6 TE Policy

 

如图19所示,在Device A上配置SRv6 TE Policy,并使用echo报文方式的BFD检测该SRv6 TE Policy,检测过程如下:

(1)     头节点发送BFD echo报文,BFD echo报文封装SRv6 TE Policy中的SID列表。

(2)     尾节点收到BFD echo报文后,通过IPv6路由的最短路径将BFD echo报文转发回头节点。

(3)     如果头节点在检测时间超时前能够收到尾节点转发回的BFD echo报文,则认为SRv6 TE Policy的SID列表正常。否则,头节点认为SID列表故障。如果主路径下的所有SID列表都发生故障,则BFD触发主备路径切换。

4.2.2  SRv6 TE Policy与SBFD联动

SRv6 TE Policy不会通过设备之间互相发送的消息来维持自身状态,它需要依靠SBFD(Seamless BFD,无缝BFD)来完成路径故障检测。通过SBFD可以检测SRv6 TE Policy的连通性,为其提供毫秒级的故障检测速度,并实现快速地故障切换。

通常情况下,SBFD仅检测SRv6 TE Policy中优先级最高的候选路径里的所有SID列表。SRv6 TE Policy与SBFD联动功能和SRv6 TE Policy热备份功能配合使用时,SBFD可以同时检测SRv6 TE Policy中优先级最高和次高的两条候选路径里的所有SID列表对应的转发路径。SRv6 TE Policy热备份功能的详细介绍请参见“5.3  SRv6 TE Policy热备份功能”。

图21 SBFD for SRv6 TE Policy检测过程

 

如图20所示,在Device A上使用SBFD检测SRv6 TE Policy。当SRv6 TE Policy中优先级最高的候选路径里存在多个SID列表时,会建立多个SBFD会话分别用来检测每一个SID列表对应的转发路径,所有SBFD会话的远端标识符均相同。如果一个候选路径下所有SID列表对应的转发路径都发生故障,则SBFD触发候选路径切换。SBFD检测SRv6 TE Policy的过程如下:

(1)     源节点作为Initiator发送SBFD报文,SBFD报文封装SRv6 TE Policy中的SID列表。

(2)     作为Reflector的尾节点收到SBFD报文后,检查报文中携带的远端标识符是否与本地配置的标识符一致。如果一致,Reflector将通过IPv6路由向Initiator发送SBFD响应报文。如果不一致,Reflector将丢弃收到的SBFD报文。

(3)     如果源节点收到SBFD响应报文,则认为该SID列表对应的转发路径正常。否则,会认为该SID列表对应转发路径故障。

4.2.3  SRv6 TE Policy热备份功能

当SRv6 TE Policy中存在多条有效候选路径时,设备通过优先级最大的候选路径转发报文。如果该候选路径发生故障,则SRv6 TE Policy需要重新选择有效候选路径转发报文。由于选择新的有效候选路径会耗费一些时间,所以在切换转发路径的过程中会造成丢包,影响业务流量转发。

SRv6 TE Policy的热备份功能可以解决上述问题。SRv6 TE Policy的热备份是指通过备份候选路径对主候选路径进行保护。如图21所示,如果一个SRv6 TE Policy下存在多条候选路径,则优先级最高的有效候选路径作为主路径,优先级次高的有效候选路径作为备份路径。如果主路径下所有SID列表对应的转发路径都发生故障,则将流量立即切换到备份候选路径转发,以减少对业务的影响。

图22 SRv6 TE Policy热备份示意图

 

SRv6 TE Policy热备份功能和SRv6 TE Policy与SBFD联动功能配合使用时,SBFD可以同时检测SRv6 TE Policy中优先级最高和次高的两条候选路径里的所有SID列表对应的转发路径。如果优先级最高的候选路径里所有SID列表对应的转发路径都发生故障,则将流量切换到备份路径。当流量切换到备份路径后,会重新计算主备路径。原备份路径将作为主路径,并重新选择一个有效的候选路径作为新的备份路径。当主备路径同时故障时,SRv6 TE Policy将重新计算主备路径。

5  SRv6 TE Policy的应用场景

如图22所示,多个云数据中心通过云骨干网互联,在云数据中心之间存在多种业务流量,不同业务的SLA(Service Level Agreement,服务水平等级)要求不同。在云骨干网中通过控制器部署多个SRv6 TE Policy,形成SRv6 TE Policy组。对于SRv6 TE Policy隧道可以部署iFIT测量其丢包率、时延和抖动等参数,衡量不同SRv6 TE Policy隧道的网络质量。

在源节点A通过QoS策略对业务流进行分类,标识出不同业务类型的DSCP值,将业务流量引入SRv6 TE Policy组后再根据DSCP->Color->SRv6 TE Policy的映射关系将不同业务流量映射到不同的SRv6 TE Policy中转发,实现不同业务的差异化SLA的需求。

图23 云骨干网中SRv6 TE Policy的应用

 

6  参考文献

·     draft-ietf-spring-segment-routing-policy-09



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有